package com.ostrich.a2104gao5

/**
 * @Author : yaotianxue
 * @Time : On 2023/10/14 09:58
 * @Description : Test7
 *
    变量默认不可为空,避免空指针异常，可以声明可为空的变量 String？
 */
fun main() {
    //1.可空性
    var str: String? = "abc"
    //2.安全调用操作符//在编译器避免空指针异常
    str?.count()
    //3.非空断言操作符//在编译器避免空指针异常
    str!!.count()
    //4.安全调用操作符经常和let函数使用，let 函数返回 匿名函数 最后一行
    str = null
    str = str?.let { //it代表str
        println("是否执行let函数")
        if(it.isNotBlank()){//判断内容是否为""
            it.capitalize()
        }else{
            "Hello"
        }
    }
    println(str)
    //5.空合并操作符:如果为空执行右边，如果不为空执行左边
    str = str ?: "demo"
    println(str)
    //6. let和空合并结合使用
    str = null
    str = str?.let {
        it.capitalize()
    }?: "Hello"
    println(str)

}


